package ecitys.gcs

import ecitys.types.Money;

class CalculoPorSalario extends CalculoVerba{
	Funcionario funcionario
	Verba verba
	
	@Override
	static Money doCalculo(){
		  Money.newMoneyFromReal(getSalariofromFuncionario())
	}
	
	Money getSalariofromFuncionario(){
		  
		  def Money result = funcionario.salarioAtual
		  
		  if (verba.fatorDeMultiplicacao > 0)
			  result = result * verba.fatorDeMultiplicacao
			  
		  if (verba.fatorDeDivisao > 0)
			 result = result / verba.fatorDeDivisao
		  
		  if (verba.percentual > 0)
			 result = result * (percentual/100)
			  
		  return result
  
	}
	
    public CalculoPorSalario(Funcionario funcionario, Verba verba) {
		super();
		this.funcionario = funcionario;
	}
    
	static transients = ['funcionario','salariofromFuncionario']

	static constraints = {
    }
	
	static mapping = {
		table schema:"gcs"
	}

}
